export default function mergeArrAndObj(data1 = [],data2 = [],key){
    if(!(data1 instanceof Array || data1 instanceof Object)) return console.warn('第一个参数格式不对')
    if(!(data2 instanceof Array || data2 instanceof Object)) return console.warn('第二个参数格式不对')
    if(!((data1 instanceof Array && data2 instanceof Array) || (data1 instanceof Object && data2 instanceof Object))) return console.warn('数据类型不一致')
    
    //都为数组的情况
    if( data1 instanceof Array){
        if(typeof key !== 'string') return console.warn('第三个参数 key 应为字符串')
        if(!key.length) return console.warn('第三个参数 key 长度不应为空')
        if(typeof key === 'undefined') return console.warn('请传入第三个参数 key')

        //找出最长的数组
        let maxArr = data1.length > data2.length ? data1:data2
        //找出最长的数组
        let minArr = data1.length < data2.length ? data1:data2
        //临时存放数据的数组
        let sumArr = []
        //临时存放数据的对象 
        let obj = {}

        maxArr.forEach((item,index)=>{
            //此时短的那一个数组已经循环完了
            if(minArr[index] === undefined){
                //只需要处理较长的那个数组
                return obj[item[key]] = {...maxArr[index]}
            }

            //这里是短的那一个数组还没循环完的情况
            obj[item[key]] = {...maxArr[index],...minArr[index]}
        })
        sumArr = Object.values(obj)

        return sumArr
        
    }else{
        //都为对象
        return {...data1,...data2}
    }
    
}
